package com.crcode.crm.dao.progress;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import com.crcode.crm.bean.progress.ProgressBean;

/**
 * 进度访问接口
 * @author cl
 * @date 2019年3月26日
 */
public interface ProgressDao extends JpaRepository<ProgressBean, Integer>, JpaSpecificationExecutor<ProgressBean> {
	
	/**
	 * 根据进度标题和关联档案UUID查询
	 * @param proTitle
	 * @param dataUuid
	 * @return
	 */
	public ProgressBean findByProTitleAndDataUuid(String proTitle,String dataUuid);
	
	/**
	 * 根据序号单一、批量删除返回操作结果数
	 * @param ids
	 * @return
	 */
	public long deleteByIdIn(List<Integer> ids);
	
	/**
	 * 根据关联档案UUID删除
	 * @param dataUuid
	 * @return
	 */
	public long deleteByDataUuid(String dataUuid);
	
	/**
	 * 根据UUID查询
	 * @author lxw
	 * @date 2019年4月19日
	 * @param uuid
	 * @return
	 */
	public ProgressBean findByUuid(String uuid);
	
	/**
	 * 根据资源UUIDS查询结果集
	 * @author lxw
	 * @date 2019年4月19日
	 * @param dataUuid
	 * @return
	 */
	public List<ProgressBean> findByDataUuidIn(List<String> dataUuid);
	
	/**
	 * 根据资源序号集和更新进度状态
	 * @author lxw
	 * @date 2019年4月19日
	 * @param proStats
	 * @param dataUuid
	 * @return
	 */
	@Modifying
    @Query("update ProgressBean p set p.proStats = ?1  where p.dataUuid in ?2")
	public int updateProStatsByDataUuids(Integer proStats,List<String> dataUuid);
	
	/**
	 * 根据资源序号集和更新进度状态
	 * @author lxw
	 * @date 2019年4月19日
	 * @param proStats
	 * @param dataUuid
	 * @return
	 */
	@Modifying
    @Query("update ProgressBean p set p.searchPowerUserUuids = ?1, p.searchPowerUserName=?2, p.editPowerUserUuids=?3, p.editPowerUserName=?4 where p.dataUuid in ?5")
	public int updatePowerInfoByDataUuids(String suuids,String snames,String euuids,String enames,List<String> dataUuid);
}
